package com.surekam.mnai.service.extractor;

import com.surekam.mnai.model.MobileNumberAttribution;
import com.surekam.mnai.service.extractor.parser.ParseFailedException;

/**
 * 号码归属信息抓取器接口。该接口定义实现类应该能针对指定手机号码从特定数据源抓取归属信息并返回。
 * 
 * @author 吴政
 * 
 */
public interface IMobileNumberAttributionExtractor {

	/**
	 * 针对指定手机号码从特定数据源抓取归属信息。
	 * 
	 * @param mobileNumber
	 *            手机号码
	 * @return 号码归属信息
	 * @throws OutOfLimitationException
	 *             如果该抓取器的使用超出了限制，则抛出此异常。
	 * @throws ConnectionFailedException
	 *             如果抓取过程中出现了连接错误，则抛出此异常。
	 * @throws ParseFailedException
	 *             如果对抓取的结果解析出现错误，则抛出此异常。
	 */
	MobileNumberAttribution extract(String mobileNumber)
			throws OutOfLimitationException, ConnectionFailedException,
			ParseFailedException;
}
